This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.
Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter. # Cellchat
source("./tianfengRwrappers.R")
Registered S3 method overwritten by 'data.table':
method from
print.data.table
Registered S3 method overwritten by 'htmlwidgets':
method from
print.htmlwidget tools:rstudio
载入需要的程辑包:dplyr
载入程辑包:‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
载入需要的程辑包:reticulate
载入需要的程辑包:tidyr
载入程辑包:‘MySeuratWrappers’
The following objects are masked from ‘package:Seurat’:
DimPlot, DoHeatmap, LabelClusters, RidgePlot, VlnPlot
载入程辑包:‘cowplot’
The following object is masked from ‘package:ggpubr’:
get_legend
载入需要的程辑包:viridisLite
载入程辑包:‘reshape2’
The following object is masked from ‘package:tidyr’:
smiths
NOTE: Either Arial Narrow or Roboto Condensed fonts are required to use these themes.
Please use hrbrthemes::import_roboto_condensed() to install Roboto Condensed and
if Arial Narrow is not on your system, please see https://bit.ly/arialnarrow
Registered S3 method overwritten by 'enrichplot':
method from
fortify.enrichResult DOSE
clusterProfiler v3.14.3 For help: https://guangchuangyu.github.io/software/clusterProfiler
If you use clusterProfiler in published research, please cite:
Guangchuang Yu, Li-Gen Wang, Yanyan Han, Qing-Yu He. clusterProfiler: an R package for comparing biological themes among gene clusters. OMICS: A Journal of Integrative Biology. 2012, 16(5):284-287.
Registering fonts with R
载入程辑包:‘plotly’
The following object is masked from ‘package:ggplot2’:
last_plot
The following object is masked from ‘package:stats’:
filter
The following object is masked from ‘package:graphics’:
layout
载入需要的程辑包:Biobase
载入需要的程辑包:BiocGenerics
载入需要的程辑包:parallel
载入程辑包:‘BiocGenerics’
The following objects are masked from ‘package:parallel’:
clusterApply, clusterApplyLB, clusterCall, clusterEvalQ, clusterExport, clusterMap, parApply,
parCapply, parLapply, parLapplyLB, parRapply, parSapply, parSapplyLB
The following objects are masked from ‘package:dplyr’:
combine, intersect, setdiff, union
The following objects are masked from ‘package:stats’:
IQR, mad, sd, var, xtabs
The following objects are masked from ‘package:base’:
anyDuplicated, append, as.data.frame, basename, cbind, colnames, dirname, do.call, duplicated, eval,
evalq, Filter, Find, get, grep, grepl, intersect, is.unsorted, lapply, Map, mapply, match, mget,
order, paste, pmax, pmax.int, pmin, pmin.int, Position, rank, rbind, Reduce, rownames, sapply,
setdiff, sort, table, tapply, union, unique, unsplit, which, which.max, which.min
Welcome to Bioconductor
Vignettes contain introductory material; view with 'browseVignettes()'. To cite Bioconductor, see
'citation("Biobase")', and for packages 'citation("pkgname")'.
载入需要的程辑包:e1071
载入程辑包:‘widgetTools’
The following object is masked from ‘package:dplyr’:
funs
载入程辑包:‘DynDoc’
The following object is masked from ‘package:BiocGenerics’:
path
载入程辑包:‘DT’
The following object is masked from ‘package:Seurat’:
JS
library(CellChat)
载入需要的程辑包:igraph
载入程辑包:‘igraph’
The following object is masked from ‘package:Mfuzz’:
membership
The following object is masked from ‘package:DynDoc’:
path
The following objects are masked from ‘package:BiocGenerics’:
normalize, path, union
The following object is masked from ‘package:plotly’:
groups
The following object is masked from ‘package:clusterProfiler’:
simplify
The following object is masked from ‘package:tidyr’:
crossing
The following objects are masked from ‘package:dplyr’:
as_data_frame, groups, union
The following objects are masked from ‘package:stats’:
decompose, spectrum
The following object is masked from ‘package:base’:
union
Registered S3 methods overwritten by 'registry':
method from
print.registry_field proxy
print.registry_entry proxy


CellChat
配体-受体+辅因子

df.net
Registered S3 method overwritten by 'cli':
method from
print.boxx spatstat
cellchat可视化
# pheatmap(mat, display_numbers = FALSE, number_color ="black", cluster_rows = FALSE,
# cluster_cols = FALSE, color = colorRampPalette(c("#1E90FF", "white", "#ff2121"))(400), border_color = NA)
table(cor@idents)
EC1 SMC_3 Mod_SMC Macrophage T_cell1 SMC_0 SMC_2 T_cell2 T_cell3 EC2
4798 1021 1224 9832 12245 3430 1590 4125 366 1294
B_cell Mast_cell SMC_1
2206 430 2294
mod_SMC – ACKR3
#chord plot
## 免疫细胞 c(4,5,8,9,11) 和SMC c(2,3,6,7,13)的关系
netVisual_chord_gene(cor, sources.use = c(4,5,8,9,11), targets.use = c(2,3,6,7,13), lab.cex = 0.5, legend.pos.y = 30)
##SMC内部
netVisual_chord_gene(cor, sources.use = c(7,13), targets.use = c(2,3,6), lab.cex = 0.5, legend.pos.y = 30)
#指定pathway
pathways.show <- c("TNF")
# Hierarchy plot
vertex.receiver = c(2,3,6,7,13) # a numeric vector.
netVisual_aggregate(cor, signaling = pathways.show, layout = "hierarchy", vertex.receiver = vertex.receiver)


netVisual_aggregate(cor, signaling = pathways.show, layout = "circle")


# netVisual_aggregate(cor, signaling = pathways.show, layout = "chord")
# Heatmap
netVisual_heatmap(cor, signaling = pathways.show, color.heatmap = c("#f1f1f1", "#ff2121"))
Do heatmap based on a single object

#可视化单个配体受体对的影响
netAnalysis_contribution(cor, signaling = pathways.show)

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.
When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).
The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKVGhpcyBpcyBhbiBbUiBNYXJrZG93bl0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbSkgTm90ZWJvb2suIFdoZW4geW91IGV4ZWN1dGUgY29kZSB3aXRoaW4gdGhlIG5vdGVib29rLCB0aGUgcmVzdWx0cyBhcHBlYXIgYmVuZWF0aCB0aGUgY29kZS4gCgpUcnkgZXhlY3V0aW5nIHRoaXMgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpSdW4qIGJ1dHRvbiB3aXRoaW4gdGhlIGNodW5rIG9yIGJ5IHBsYWNpbmcgeW91ciBjdXJzb3IgaW5zaWRlIGl0IGFuZCBwcmVzc2luZyAqQ3RybCtTaGlmdCtFbnRlciouIAojIENlbGxjaGF0CmBgYHtyfQpzb3VyY2UoIi4vdGlhbmZlbmdSd3JhcHBlcnMuUiIpCmxpYnJhcnkoQ2VsbENoYXQpCmBgYAoKCmBgYHtyfQpkczIgPC0gcmVhZFJEUygiZHMyLnJkcyIpCkNBX2RhdGFzZXQyIDwtIHJlYWRSRFMoIkNBX2RhdGFzZXQyLnJkcyIpCnNhdmVSRFMoQ0FfZGF0YXNldDIsIkNBX2RhdGFzZXQyLnJkcyIpCnVtYXBwbG90KENBX2RhdGFzZXQyKQpgYGAKCmBgYHtyfQpJZGVudHMoQ0FfZGF0YXNldDIpIDwtIENBX2RhdGFzZXQyJENsYXNzaWZpY2F0aW9uMQpDQV9kYXRhc2V0MiA8LSBGaW5kU3ViQ2x1c3RlcihDQV9kYXRhc2V0MiwgY2x1c3RlciA9ICdTTUMnLCBncmFwaC5uYW1lID0gJ1NDVF9zbm4nLHJlc29sdXRpb24gPSAwLjE1ICkKSWRlbnRzKENBX2RhdGFzZXQyKSA8LSBDQV9kYXRhc2V0MiRzdWIuY2x1c3Rlcgp1bWFwcGxvdChDQV9kYXRhc2V0MikKZigiRExYNi1BUzEiLENBX2RhdGFzZXQyKQpgYGAKCiMgQ2VsbENoYXQKIyMg6YWN5L2TLeWPl+S9kyvovoXlm6DlrZAKYGBge3J9CmNvciA8LSBjcmVhdGVDZWxsQ2hhdChDQV9kYXRhc2V0MikKY2VsbGNoYXREQiA8LSBDZWxsQ2hhdERCLmh1bWFuCgpzaG93RGF0YWJhc2VDYXRlZ29yeShjZWxsY2hhdERCKQojY2VsbGNoYXREQl91c2UgPC0gc3Vic2V0REIoY2VsbGNoYXREQiwgc2VhcmNoID0gIlNlY3JldGVkIFNpZ25hbGluZyIpICAj5L2/55So54m55a6a57G75Z6L55qE6YWN5L2T5Y+X5L2T55u45LqS5YWz57O7Cgoj5oyH5a6a5YiG5p6Q5L2/55So55qEZGF0YWJhc2UKY29yQERCIDwtIGNlbGxjaGF0REIKCiPoioLnnIHorqHnrpfmiJDmnKwKY29yIDwtIHN1YnNldERhdGEoY29yKQoKY29yIDwtIGlkZW50aWZ5T3ZlckV4cHJlc3NlZEdlbmVzKGNvcikKY29yIDwtIGlkZW50aWZ5T3ZlckV4cHJlc3NlZEludGVyYWN0aW9ucyhjb3IpCgoj5L2/55So6JuL55m96LSo5LqS5L2c572R57uc77yM5qC55o2u5Z+65Zug6Ze055u45LqS5YWz57O76KGl5YWF6KGo6L6+6YePCmNvciA8LSBwcm9qZWN0RGF0YShjb3IsIFBQSS5odW1hbikKCiPmjqjmlq3nu4bog57pl7TpgJrkv6HnvZHnu5zvvIzkuI3opoHkvb/nlKjlubbooYzorqHnrpfvvIEKY29yIDwtIGNvbXB1dGVDb21tdW5Qcm9iKGNvcikKI+iLpee7huiDnue+pOS4reWPquacieWwkeaVsOe7huiDnuWHuueOsOiBlOezuyg8MTDkuKop77yM5YiZ6L+H5ruk5o6J5a6D5LusCmNvciA8LSBmaWx0ZXJDb21tdW5pY2F0aW9uKGNvcixtaW4uY2VsbHMgPSAxMCkKCiPmj5Dlj5booajovr7nvZHnu5znn6npmLUKZGYubmV0IDwtIHN1YnNldENvbW11bmljYXRpb24oY29yKQojZGYubmV0IDwtIHN1YnNldENvbW11bmljYXRpb24oY29yLHNvdXJjZS51c2UgPSBjKDUpLCB0YXJnZXQudXNlID0gYyg0KSwgc2lnbmFsaW5nID0gYygiV05UIikpICPmjIflrprliIbmnpDnmoTpgJrot6/lkoznu4bog57nsbvnvqQKCiPmjqjmlq3kv6Hlj7fpgJrot68KY29yIDwtIGNvbXB1dGVDb21tdW5Qcm9iUGF0aHdheShjb3IpCgoj5ZCI5bm26YCa5L+h572R57uc5pWw5o2uCmNvciA8LSBhZ2dyZWdhdGVOZXQoY29yKQojIHNhdmVSRFMoY29yLCJDQTJfY2VsbGNoYXQucmRzIikKYGBgCmBgYHtyfQp3cml0ZS5jc3YoZGYubmV0LCIuL2RhdGF0YWJsZS9jZWxsY2hhdF9yZXMuY3N2Iiwgcm93Lm5hbWVzID0gRikKYGBgCgoKCiMjIGNlbGxjaGF05Y+v6KeG5YyWCmBgYHtyLGZpZy5oZWlnaHQ9NixmaWcud2lkdGg9Nn0KIyBjb3IgPC0gcmVhZFJEUygiQ0EyX2NlbGxjaGF0LnJkcyIpCnRhYmxlKGNvckBpZGVudHMpCmdyb3VwU2l6ZSA8LSBhcy5udW1lcmljKHRhYmxlKGNvckBpZGVudHMpKQpuZXRWaXN1YWxfY2lyY2xlKGNvckBuZXQkd2VpZ2h0LCB2ZXJ0ZXgud2VpZ2h0ID0gZ3JvdXBTaXplLCB3ZWlnaHQuc2NhbGUgPSBULCBsYWJlbC5lZGdlPSBGLCB0aXRsZS5uYW1lID0gIkludGVyYWN0aW9uIHdlaWdodHMvc3RyZW5ndGgiKQpuZXRWaXN1YWxfaGVhdG1hcChjb3IsIG1lYXN1cmUgPSAid2VpZ2h0Iiwgc2lnbmFsaW5nID0gTlVMTCwgY29sb3IuaGVhdG1hcCA9IGMoIiNmMWYxZjEiLCAiI2ZmMjEyMSIpKQoKI+S4gOasoeWIhuaekOS4jeWQjOe7huiDnuS6mue+pAptYXQgPC0gY29yQG5ldCR3ZWlnaHQKZm9yIChpIGluIDE6bnJvdyhtYXQpKSB7CiAgbWF0MiA8LSBtYXRyaXgoMCwgbnJvdyA9IG5yb3cobWF0KSwgbmNvbCA9IG5jb2wobWF0KSwgZGltbmFtZXMgPSBkaW1uYW1lcyhtYXQpKQogIG1hdDJbaSwgXSA8LSBtYXRbaSwgXQogIG5ldFZpc3VhbF9jaXJjbGUobWF0MiwgdmVydGV4LndlaWdodCA9IGdyb3VwU2l6ZSwgd2VpZ2h0LnNjYWxlID0gVCwgZWRnZS53ZWlnaHQubWF4ID0gbWF4KG1hdCksIHRpdGxlLm5hbWUgPSByb3duYW1lcyhtYXQpW2ldKQp9CgojIHBoZWF0bWFwKG1hdCwgZGlzcGxheV9udW1iZXJzID0gRkFMU0UsIG51bWJlcl9jb2xvciA9ImJsYWNrIiwgY2x1c3Rlcl9yb3dzID0gRkFMU0UsIAogICAgICAgICAjIGNsdXN0ZXJfY29scyA9IEZBTFNFLCBjb2xvciA9IGNvbG9yUmFtcFBhbGV0dGUoYygiIzFFOTBGRiIsICJ3aGl0ZSIsICIjZmYyMTIxIikpKDQwMCksIGJvcmRlcl9jb2xvciA9IE5BKQp0YWJsZShjb3JAaWRlbnRzKQpgYGAKIyBtb2RfU01DIC0tIEFDS1IzCgpgYGB7cixmaWcuaGVpZ2h0PTYsZmlnLndpZHRoPTZ9CiNjaG9yZCBwbG90CiMjIOWFjeeWq+e7huiDniBjKDQsNSw4LDksMTEpIOWSjFNNQyBjKDIsMyw2LDcsMTMp55qE5YWz57O7Cm5ldFZpc3VhbF9jaG9yZF9nZW5lKGNvciwgc291cmNlcy51c2UgPSBjKDQsNSw4LDksMTEpLCB0YXJnZXRzLnVzZSA9IGMoMiwzLDYsNywxMyksIGxhYi5jZXggPSAwLjUsIGxlZ2VuZC5wb3MueSA9IDMwKQoKIyNTTUPlhoXpg6gKbmV0VmlzdWFsX2Nob3JkX2dlbmUoY29yLCBzb3VyY2VzLnVzZSA9IGMoNywxMyksIHRhcmdldHMudXNlID0gYygyLDMsNiksIGxhYi5jZXggPSAwLjUsIGxlZ2VuZC5wb3MueSA9IDMwKQpgYGAKCgpgYGB7cixmaWcuaGVpZ2h0PTYsZmlnLndpZHRoPTZ9CiPmjIflrppwYXRod2F5CnBhdGh3YXlzLnNob3cgPC0gYygiVE5GIikgI+WcqG1vZF9TTUPkuIrosIMKIyBIaWVyYXJjaHkgcGxvdAp2ZXJ0ZXgucmVjZWl2ZXIgPSBjKDIsMyw2LDcsMTMpICMgYSBudW1lcmljIHZlY3Rvci4gCm5ldFZpc3VhbF9hZ2dyZWdhdGUoY29yLCBzaWduYWxpbmcgPSBwYXRod2F5cy5zaG93LCBsYXlvdXQgPSAiaGllcmFyY2h5IiwgdmVydGV4LnJlY2VpdmVyID0gdmVydGV4LnJlY2VpdmVyKQpuZXRWaXN1YWxfYWdncmVnYXRlKGNvciwgc2lnbmFsaW5nID0gcGF0aHdheXMuc2hvdywgbGF5b3V0ID0gImNpcmNsZSIpCiMgbmV0VmlzdWFsX2FnZ3JlZ2F0ZShjb3IsIHNpZ25hbGluZyA9IHBhdGh3YXlzLnNob3csIGxheW91dCA9ICJjaG9yZCIpCgojIEhlYXRtYXAKbmV0VmlzdWFsX2hlYXRtYXAoY29yLCBzaWduYWxpbmcgPSBwYXRod2F5cy5zaG93LCBjb2xvci5oZWF0bWFwID0gYygiI2YxZjFmMSIsICIjZmYyMTIxIikpCmBgYAoKCmBgYHtyLGZpZy5oZWlnaHQ9NixmaWcud2lkdGg9Nn0KI+WPr+inhuWMluWNleS4qumFjeS9k+WPl+S9k+WvueeahOW9seWTjQpuZXRBbmFseXNpc19jb250cmlidXRpb24oY29yLCBzaWduYWxpbmcgPSBwYXRod2F5cy5zaG93KQpwYWlyTFIuVE5GIDwtIGV4dHJhY3RFbnJpY2hlZExSKGNvciwgc2lnbmFsaW5nID0gcGF0aHdheXMuc2hvdywgZ2VuZUxSLnJldHVybiA9IEZBTFNFKQpMUi5zaG93IDwtIHBhaXJMUi5UTkZbMSxdICMgc2hvdyBvbmUgbGlnYW5kLXJlY2VwdG9yIHBhaXIgVE5GMTJfQ1hDUjQKIyBIaWVyYXJjaHkgcGxvdAoKbmV0VmlzdWFsX2luZGl2aWR1YWwoY29yLCBzaWduYWxpbmcgPSBwYXRod2F5cy5zaG93LGxheW91dCA9ICJoaWVyYXJjaHkiLCAgcGFpckxSLnVzZSA9IExSLnNob3csIHZlcnRleC5yZWNlaXZlciA9IHZlcnRleC5yZWNlaXZlcikKbmV0VmlzdWFsX2luZGl2aWR1YWwoY29yLCBzaWduYWxpbmcgPSBwYXRod2F5cy5zaG93LCBwYWlyTFIudXNlID0gTFIuc2hvdywgbGF5b3V0ID0gImNpcmNsZSIpCm5ldFZpc3VhbF9pbmRpdmlkdWFsKGNvciwgc2lnbmFsaW5nID0gcGF0aHdheXMuc2hvdywgcGFpckxSLnVzZSA9IExSLnNob3csIGxheW91dCA9ICJjaG9yZCIpCgoKCiMgTFIuc2hvdyA8LSBwYWlyTFIuVE5GWzQsXSAjIHNob3cgb25lIGxpZ2FuZC1yZWNlcHRvciBwYWlyIFRORjEyX0NYQ1I0CiMgSGllcmFyY2h5IHBsb3QKbmV0VmlzdWFsX2luZGl2aWR1YWwoY29yLCBzaWduYWxpbmcgPSBwYXRod2F5cy5zaG93LGxheW91dCA9ICJoaWVyYXJjaHkiLCAgcGFpckxSLnVzZSA9IExSLnNob3csIHZlcnRleC5yZWNlaXZlciA9IHZlcnRleC5yZWNlaXZlcikKbmV0VmlzdWFsX2luZGl2aWR1YWwoY29yLCBzaWduYWxpbmcgPSBwYXRod2F5cy5zaG93LCBwYWlyTFIudXNlID0gTFIuc2hvdywgbGF5b3V0ID0gImNpcmNsZSIpCm5ldFZpc3VhbF9pbmRpdmlkdWFsKGNvciwgc2lnbmFsaW5nID0gcGF0aHdheXMuc2hvdywgcGFpckxSLnVzZSA9IExSLnNob3csIGxheW91dCA9ICJjaG9yZCIpCgoKbmV0VmlzdWFsX2J1YmJsZShjb3IsIHNvdXJjZXMudXNlID0gOCwgdGFyZ2V0cy51c2UgPSBjKDIsMyw2LDcsMTMpLCByZW1vdmUuaXNvbGF0ZSA9IEZBTFNFKSAjVF9jZWxsMiDkvZzkuLpzb3VyY2UKIyBuZXRWaXN1YWxfYnViYmxlKGNvciwgc291cmNlcy51c2UgPSA0LCB0YXJnZXRzLnVzZSA9IGMoMTo3KSwgcmVtb3ZlLmlzb2xhdGUgPSBGQUxTRSkgI3N0cm9tYWwg5L2c5Li6c291cmNlCgpuZXRWaXN1YWxfYnViYmxlKGNvciwgc291cmNlcy51c2UgPSA1LCB0YXJnZXRzLnVzZSA9IGMoMiwzLDYsNywxMyksIHNpZ25hbGluZyA9IGMoIlRORiIpLCByZW1vdmUuaXNvbGF0ZSA9IEZBTFNFKQpgYGAKQWRkIGEgbmV3IGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqSW5zZXJ0IENodW5rKiBidXR0b24gb24gdGhlIHRvb2xiYXIgb3IgYnkgcHJlc3NpbmcgKkN0cmwrQWx0K0kqLgoKV2hlbiB5b3Ugc2F2ZSB0aGUgbm90ZWJvb2ssIGFuIEhUTUwgZmlsZSBjb250YWluaW5nIHRoZSBjb2RlIGFuZCBvdXRwdXQgd2lsbCBiZSBzYXZlZCBhbG9uZ3NpZGUgaXQgKGNsaWNrIHRoZSAqUHJldmlldyogYnV0dG9uIG9yIHByZXNzICpDdHJsK1NoaWZ0K0sqIHRvIHByZXZpZXcgdGhlIEhUTUwgZmlsZSkuCgpUaGUgcHJldmlldyBzaG93cyB5b3UgYSByZW5kZXJlZCBIVE1MIGNvcHkgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBlZGl0b3IuIENvbnNlcXVlbnRseSwgdW5saWtlICpLbml0KiwgKlByZXZpZXcqIGRvZXMgbm90IHJ1biBhbnkgUiBjb2RlIGNodW5rcy4gSW5zdGVhZCwgdGhlIG91dHB1dCBvZiB0aGUgY2h1bmsgd2hlbiBpdCB3YXMgbGFzdCBydW4gaW4gdGhlIGVkaXRvciBpcyBkaXNwbGF5ZWQuCg==